# coding: utf-8
import user


def login():
    """

    :return: user obj
    """
    username = input("输入用户名: ").strip()
    password = input("输入密码: ").strip()

    # 创建用户对象
    login_user = user.User(username, password)

    # 检查该用户是否存在
    check_user = login_user.find_user()

    # 如果不存在,提示是否创建
    if not check_user:
        flag_word = True
        word = 'N'
        while flag_word:
            word = input("该用户不存在,是否使用该用户名和密码创建账户? [Y/N]: ").strip().upper()
            if check_input_single_word(word):
                flag_word = False
        if word == 'Y':
            print("由于首次创建账户,需要完善以下信息")
            balance = 0
            flag_num = True
            while flag_num:
                balance = input("输入你需要存入的金额: ")
                if check_input_balance(balance):
                    flag_num = False
            login_user = user.User(username, password, balance)
            login_user.create_user()
            print("创建用户成功!!! 进入购物环境!".center(22, '-'))
            return login_user

        else:
            exit("Bye")

    # 如果用户存在则校验密码是否一致
    else:
        if login_user.get_user_pwd() == password:
            return login_user
        else:
            exit("该用户密码输入错误,退出!")


def check_input_single_word(input_word):
    """
    检查用户输入的单个字符是否为Y或N
    :param input_word: 用户输入的字符
    :return: True or False
    """
    word = input_word.strip().upper()
    if len(word) != 1:
        print("输入长度不为1! 请老老实实按要去输入好么~~~")
        return False
    if word == 'Y' or word == 'N':
        return True
    else:
        print("按要求输入好嘛,还能不能愉快的玩耍了!")
        return False


def check_input_balance(input_balance):
    """
    检查用户输入的充值金额是否合法
    :param input_balance: 用户输入的金额
    :return: True or False
    """
    num = input_balance.strip().upper()
    if num.isdigit():
        return True
    else:
        print("老老实实输入纯数字好么, 充值随便写还不好好写~~")
        return False


if __name__ == "__main__":
    # login()
    # print check_input_balance('123')
    pass